<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Atributo_frm( $this );

	class Atributo_frm extends Frm
	{
	function setValue ( $ncClase, $ncAtributo )
		{
			$cSql = "SELECT CAt.ncTipoAtributo, CAt.cdAtributo, CAt.cdClaseAtributo, CAt.cDescripcion, CAt.cFisico, CAt.fLongitud
				FROM stClaseAtributo as CAt
				WHERE CAt.ncAtributo=$ncAtributo
				AND   CAt.ncClase=$ncClase";
			$aDatos = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aDatos );
		}

	function Atributo_frm( &$oModule )
		{
			$this->Frm ( $oModule );
		//Crea los Objetos de los campos de edicion
			$this->aFields['ncClase'] 			= new Input( "Codigo clase", 'ncClase', '', false, true );
			$this->aFields['ncAtributo'] 		= new Input( "Codigo 'atributo", 'ncAtributo', '', false, true  );
			$this->aFields['cdAtributo'] 		= new InputText ( 'Titulo', 'cdAtributo' );
			$this->aFields['cFisico'] 			= new InputText ( 'Fisico', 'cFisico' );
			$this->aFields['ncTipoAtributo'] 	= new InputList ( 'Tipo', 'ncTipoAtributo' );
			$this->aFields['cdClaseAtributo'] 	= new InputText ( 'Clase', 'cdClaseAtributo' );
			$this->aFields['fLongitud'] 		= new InputNumber ( 'Longitud', 'fLongitud' );
			$this->aFields['cDescripcion']		= new InputText ( 'Descripcion', 'cDescripcion' );
			$this->oDatabase = openMetadataDB ( getParam('cPathModule') );
		}
	function initializeForm()
		{
			// Si viene el Ubicacion hace el retrieve
				if ( $this->isRetrievable() && $this->aFields['ncClase']->getValue() && $this->aFields['ncAtributo']->getValue() )
				{
					$this->setValue( $this->aFields['ncClase']->getValue() , $this->aFields['ncAtributo']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel( "Atributo" );
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'cdAtributo':
					$oField->setMandatory( $this->isMandatory() );
					$oField->setLength(120);
				break;
				case 'cFisico':
					$oField->setMandatory( $this->isMandatory() );
					$oField->setLength(40);
				break;
				case 'cdClaseAtributo':
					$oField->setLength(40);
				break;
				case 'fLongitud':
					$oField->setLength(8.2);
				break;
				case 'ncTipoAtributo':
					$cSql = "SELECT ncTipoAtributo, cdTipoAtributo FROM scTipoAtributo";
					if ( $ncCategoriaClase  ) $cSql .= " WHERE ncCategoriaClase  =$ncCategoriaClase ";
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql )  );
				break;
			}
 		}
	}
?>